06. [Keras Lab 准备] IMDB 数据

迷你项目:使用 Keras 分析 IMDB 电影数据

现在,你已经准备就绪了! 在这一项目中,我们将分析一个来自 IMDB 的数据集,并用它来预测评论的情感分析。

工作区

你可以在教室中打 Notebook,然后转到下一个节点。 但是如果你想单独打开它,你可以从GitHub仓库克隆材料,在其中打开** IMDB_in_Keras.ipynb ** 。

数据集

本实验使用一个包含 25,000 条 IMDB评论的数据集。 每个评论都附带一个标签。 负面评论的标签为 0,正面评论的标签为 1。 这个实验的目标是创建一个模型,根据它的话来预测评论的情感。 你可以在Keras网站上看到关于这个数据集的更多信息。

现在,输入已经帮助我们很方便地进行预处理。 每个评论被编码为一系列索引,对应于评论中的单词。 词按频率排序,所以整数 1 对应于最频繁的词(“the”),整数 2 对应于第二频繁的词。按照惯例,整数0对应于未知词。

然后,你通过简单地连接这些整数,将句子变成一个向量。 比如,如果句子是“是或不是”。 这些词的索引如下:

  • "to": 5
  • "be": 8
  • "or": 21
  • "not": 3

那么,这个句子就会被编码为矢量[5,8,21,3,5,8]

加载数据

在 Keras中数据得到预先加载,这意味着我们不需要手动打开或读取任何文件。 加载它的命令如下,实际上可以将单词分成训练、测试集和标签:

from keras.datasets import imdb
(x_train, y_train), (x_test, y_test) = imdb.load_data(path="imdb.npz",
                                                     num_words=None,
                                                     skip_top=0,
                                                     maxlen=None,
                                                     seed=113,
                                                     start_char=1,
                                                     oov_char=2,
                                                     index_from=3)

所有这些参数说明可以在这里查看。总而言之,最重要的是:

  • ** num_words **:要考虑的最常见的单词。如果你不想考虑一些很晦涩的词汇,比如“Ultracrepidarian”,这会很有用。
  • ** skip_top **:忽略的热门词汇。如果你不想考虑最常见的词,这会很有用。比如,单词“the”将不会在评论中添加任何信息,所以我们可以通过将skip_top 设置为 2 或更高来跳过它。

预处理数据

在 notebook中,我们首先将数据编码为 (0,1) - 向量,编码如下:例如,如果我们的词汇量为10个词,向量为(4,1,8) ,我们将它变成矢量 (1,0,0,1,0,0,0,1,0,0)。

建立模型

现在轮到你使用所有你学到的东西了!你可以使用 Keras 建立一个神经网络,对它进行训练并评估!你需要使用诸如丢弃或正则化的方法,并且使用好的 Keras 优化器来实现这一点。准确度可以达到 85%。你的模型能实现这个吗?

如果你需要帮助,你可以在** IMDB_in_Keras_Solutions **notebook中查看我们的解决方案。有许多解决方案都有用,可以随时创造性地发挥作用!